Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

данные из формы почемуто не передеются (Vasilenko)
Author Message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9985
   поощрить/наказать


PostPosted: Fri Mar 06, 2009 12:46 am (написано за 5 секунд)
   Post subject:
Reply with quote


М

Выделено из темы «JsHttpRequest 5: Кроссбраузерный AJAX + закачка файлов.»,
расположенной в форуме JsHttpRequest :: JavaScript (06 Марта 2009, 03:46).
Back to top
View user's profile Send private message
Vasilenko
Заглянувший



Joined: 15 Dec 2008
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Fri Mar 06, 2009 12:46 am (спустя 1 секунду; написано за 3 секунды)
   Post subject:
Reply with quote

Добрый день, скажу сразу я не знаток Java-script. скачал библиотеку JsHttpRequest посмотрел примеры,естественно ничего в них не понял начал эксперементировать! привожу код:
Code (php): скопировать код в буфер обмена
<!--Форма добавления оплаты пользователю-->
                           <script language="JavaScript">
                            //передаем добавление оплаты пользователю
           
           function oplata() {
    JsHttpRequest.query(
      '2.php', // путь к backend-скрипту
      {
        // передаем текстовые данные
                'id': document.getElementById("myid")
                'data': document.getElementById("mydatata")
                'dengi': document.getElementById("mydengi")
                'prim': document.getElementById("myprim")
       
              },
                         
                          // Функция-обработчик, вызывается при ответе сервера.
      function(result, errors) {
        // Вывести отладочные сообщения (если нужно).
        document.getElementById("report").innerHTML = errors;
               
                }   
    );
  }
       
                         
                         
                         
              </script>
 
             <strong> Добавление оплаты пользователю:   <?php echo (www.php.net/echo) "($myrow_user_id[name])"; ?></strong>
             
             
            </p>
            <?php
                        
                       
                        $data = date (www.php.net/date) ("Y-m-d");
                        printf (www.php.net/printf)("
        <form method='post' enctype='multipart/form-data' onsubmit='return false'>
              <p>
                <label>
                <input type='hidden' name='myid' id='myid'  value='%s'>
               Дата: &nbsp;&nbsp;&nbsp;<input type='data' name='mydata' id='mydata' value='$data'>&nbsp;&nbsp;&nbsp;
                Сумма оплаты:&nbsp;&nbsp;<input name='mydengi' type='text' id='mydengi' value= 'Сумма для оплаты'>
                  </label>
                <label>
                <br><br>
                                <strong>Примечание платежу</strong>
                <br>
                <textarea name='myprim' id='myprim' cols='45' rows='5'></textarea>
                <br><br>
                <input type='button' value='Занести оплату' onclick='oplata()'>
                </label>
              </p>
            </form>"
, $id, $data[Y-m-d]); ?>
                       
                        <div id="report" style="border:1px dashed red; padding:2px">
  Отладочные сообщения отобразятся в этом блоке.
</div>
                       
                                                   
                        <?
это часть кода с формой добавления оплаты пользователю на баланс, данные из формы передаются в скрипт 2.php и потом там обрабатываются и после отработки скрипта получается ответ деньги на счет внесены успешно! Когда писал читсто на php все работало нормально, решил сделать на ajax (еще раз скажу , что работаю с ним впервые) но данные из формы почемуто не передеются! прошу помощи с решением проблемы!
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Fri Mar 06, 2009 4:35 pm (спустя 15 часов 49 минут; написано за 1 минуту 47 секунд)
   Post subject:
Reply with quote

Vasilenko,
замените:
Code (JavaScript): скопировать код в буфер обмена
                'id': document.getElementById("myid")
                'data': document.getElementById("mydatata")
                'dengi': document.getElementById("mydengi")
                'prim': document.getElementById("myprim")
на:
Code (JavaScript): скопировать код в буфер обмена
                'id': document.getElementById("myid").value,
                'data': document.getElementById("mydatata").value,
                'dengi': document.getElementById("mydengi").value,
                'prim': document.getElementById("myprim").value
P.S. Не используйте register_globals!!! Замените все свои
$переменнаяизфронтеда, на $_REQUEST['переменная из фронтеда'].
Back to top
View user's profile Send private message Send e-mail
Vasilenko
Заглянувший



Joined: 15 Dec 2008
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Sat Mar 07, 2009 9:45 am (спустя 17 часов 9 минут; написано за 7 минут 5 секунд)
   Post subject:
Reply with quote

Александр Михалицын wrote:
Vasilenko,


P.S. Не используйте register_globals!!! Замените все свои
$переменнаяизфронтеда, на $_REQUEST['переменная из фронтеда'].
register_globals я преобразовываю в бекэнде!

После замены таже ситуация не хотят передаваться данные из формы, тоесть страница не перегружается!
Но вот тут есть такой парадокс сделал так как вы писали, стоит мертво, но когда убираю в последней строчке функции пердачи параментр .value, то начинает работать но даныые почему-то не обрабатываются бэкендом! Вот листинг того, что я сделал:
Code (java): скопировать код в буфер обмена
'id': document.getElementById("myid").value,
                'data': document.getElementById("mydata").value,
                'dengi': document.getElementById("mydengi").value,
                'prim': document.getElementById("myprim")
Не могли бы написать, что означает - это ".value," , а то я его нагуглить никак не могу!
Back to top
View user's profile Send private message
Александр Михалицын
Модератор



Joined: 23 May 2008
Posts: 1299
Карма: 83
   поощрить/наказать


PostPosted: Sat Mar 07, 2009 10:21 am (спустя 36 минут; написано за 48 секунд)
   Post subject:
Reply with quote

Quote:
тоесть страница не перегружается!
На то он и AJAX чтобы не перезагружалась... :)

А вообще покажите ка, как вы там глобальные переменные создаете...
Back to top
View user's profile Send private message Send e-mail
Vasilenko
Заглянувший



Joined: 15 Dec 2008
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Sat Mar 07, 2009 10:45 am (спустя 24 минуты; написано за 4 минуты 12 секунд)
   Post subject:
Reply with quote

Александр Михалицын wrote:
Quote:
тоесть страница не перегружается!
На то он и AJAX чтобы не перезагружалась... :)

А вообще покажите ка, как вы там глобальные переменные создаете...
Я не так выразился не перегружается - это в том смысле, что действие не выполняется, скрипт стоит на месте!

вот преобразование переменных в бэкенде:
Code (php): скопировать код в буфер обмена
if (isset (www.php.net/isset)($_POST['id'])){$id = $_POST['id']; if($id == ''){unset (www.php.net/unset)($id); }}
if (isset (www.php.net/isset)($_POST['data'])){$id2 = $_POST['data']; if($id2 == ''){unset (www.php.net/unset)($data); }}
if (isset (www.php.net/isset)($_POST['dengi'])){$id3 = $_POST['dengi']; if($id3 == ''){unset (www.php.net/unset)($dengi); }}
if (isset (www.php.net/isset)($_POST['prim'])){$id4 = $_POST['prim']; if($id4 == ''){unset (www.php.net/unset)($prim); }}
$id = $_REQUEST['id']; $data = $_REQUEST['data']; $dengi = $_REQUEST['dengi']; $prim = $_REQUEST['prim'];
вот как выглядит теперь мой код:
Code (java): скопировать код в буфер обмена
<script language="JavaScript">
                 //передаем добавление оплаты пользователю

 function oplata() {
    JsHttpRequest.query(
      '22.php', // путь к backend-скрипту
      {
        // передаем текстовые данные
                'id': document.getElementById("myid").value,
                'data': document.getElementById("mydata").value,
                'dengi': document.getElementById("mydengi").value,
                'prim': document.getElementById("myprim")
                               
              },
                         
                          // Функция-обработчик, вызывается при ответе сервера.
      function(result, errors) {
        // Вывести отладочные сообщения (если нужно).
        document.getElementById("report").innerHTML = errors;
               
                }   
    );
  }
       
                         
                         
                         
              </script>
 
             <strong> Добавление оплаты пользователю:   <?php echo "($myrow_user_id[name])"; ?></strong>
             
             
            </p>
            <?php
                        
                       
                        $data = date ("Y-m-d");
                        printf("
        <form method='post' enctype='multipart/form-data' onsubmit='return false'>
              <p>
                <label>
                <input type='hidden' name='id' id='myid'  value='%s'>
               Дата: &nbsp;&nbsp;&nbsp;<input type='data' name='data' id='mydata' value='$data'>&nbsp;&nbsp;&nbsp;
                Сумма оплаты:&nbsp;&nbsp;<input name='dengi' type='text' id='mydengi' value= 'Сумма для оплаты'>
                  </label>
                <label>
                <br><br>
                                <strong>Примечание платежу</strong>
                <br>
                <textarea name='prim' id='myprim' cols='45' rows='5'></textarea>
                <br><br>
                <input type='button' value='Занести оплату' onclick='oplata()'>
                </label>
              </p>
            </form>"
, $id, $data[Y-m-d]); ?>
                       
                        <div id="ans" style="border:1px solid #000; padding:2px">
  Результат работы отобразится в этом блоке.
</div>
<div id="debug" style="border:1px dashed red; padding:2px">
  Отладочные сообщения отобразятся в этом блоке.
</div>
и вот бэкенд
Code (php): скопировать код в буфер обмена
<?php
require_once "../../../lib/JsHttpRequest/JsHttpRequest.php";
include ("bloks/bd1.php");

if (isset (www.php.net/isset)($_POST['id'])){$id = $_POST['id']; if($id == ''){unset (www.php.net/unset)($id); }}
if (isset (www.php.net/isset)($_POST['data'])){$id2 = $_POST['data']; if($id2 == ''){unset (www.php.net/unset)($data); }}
if (isset (www.php.net/isset)($_POST['dengi'])){$id3 = $_POST['dengi']; if($id3 == ''){unset (www.php.net/unset)($dengi); }}
if (isset (www.php.net/isset)($_POST['prim'])){$id4 = $_POST['prim']; if($id4 == ''){unset (www.php.net/unset)($prim); }}
$id = $_REQUEST['id']; $data = $_REQUEST['data']; $dengi = $_REQUEST['dengi']; $prim = $_REQUEST['prim'];
                       
                         if (!isset (www.php.net/isset)($id) && !isset (www.php.net/isset)($data) && !isset (www.php.net/isset)($dengi)  )
                                        {
                        if (!isset (www.php.net/isset)($id)){
                        echo (www.php.net/echo) "Не хватает переменной id<br>";}
                        if (!isset (www.php.net/isset)($data)){
                        echo (www.php.net/echo) "Не хватает переменной data<br>";}
                        if (!isset (www.php.net/isset)($prim)){
                        echo (www.php.net/echo) "Не хватает переменной dengi<br>";}
                                        }
                                        else{
               
/*Если все переменные существуют то заносим оплату в базу*/

   
       
$result = mysql_query (www.php.net/mysql_query) ("INSERT INTO oplata (user_id,data,dengi,prim) VALUES ('$id','$data','$dengi','$prim')");
if ($result == 'true') {
echo (www.php.net/echo) "<p> Оплата внесена успешно<br></p>
<p><a href='show_user.php?id=$id'> Вернуться на страницу пользователя</a></p>"
;}
}

 ?>
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Wed Mar 11, 2009 2:40 pm (спустя 4 дня 3 часа 54 минуты; написано за 38 секунд)
   Post subject:
Reply with quote

самый важный вопрос относитеьно этого кода:
[]
Code (php): скопировать код в буфер обмена
if (isset (www.php.net/isset)($_POST['id'])){$id = $_POST['id']; if($id == ''){unset (www.php.net/unset)($id); }}
if (isset (www.php.net/isset)($_POST['data'])){$id2 = $_POST['data']; if($id2 == ''){unset (www.php.net/unset)($data); }}
if (isset (www.php.net/isset)($_POST['dengi'])){$id3 = $_POST['dengi']; if($id3 == ''){unset (www.php.net/unset)($dengi); }}
if (isset (www.php.net/isset)($_POST['prim'])){$id4 = $_POST['prim']; if($id4 == ''){unset (www.php.net/unset)($prim); }}
$id = $_REQUEST['id']; $data = $_REQUEST['data']; $dengi = $_REQUEST['dengi']; $prim = $_REQUEST['prim'];
[/]

Зачем он?
Back to top
Vasilenko
Заглянувший



Joined: 15 Dec 2008
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Wed Mar 11, 2009 5:30 pm (спустя 2 часа 49 минут; написано за 49 секунд)
   Post subject:
Reply with quote

преобразуем глобальные переменные в обычные! Для хостингов у которых регистер глобал выключен!
Back to top
View user's profile Send private message
bæv
Модератор «Дзена»



Joined: 27 Aug 2003
Posts: 7275
Карма: 9985
   поощрить/наказать


PostPosted: Wed Mar 11, 2009 7:48 pm (спустя 2 часа 18 минут; написано за 19 секунд)
   Post subject:
Reply with quote

Vasilenko wrote:
преобразуем глобальные переменные в обычные! Для хостингов у которых регистер глобал выключен!
— Вы это серьёзно?
Back to top
View user's profile Send private message
Vasilenko
Заглянувший



Joined: 15 Dec 2008
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Thu Mar 12, 2009 7:12 pm (спустя 23 часа 24 минуты; написано за 28 секунд)
   Post subject:
Reply with quote

Quote:
 Вы это серьёзно?
Вы имеете другой ответ ?
Back to top
View user's profile Send private message
Guest






Карма: 388
   поощрить/наказать


PostPosted: Thu Mar 12, 2009 9:30 pm (спустя 2 часа 17 минут; написано за 2 минуты 40 секунд)
   Post subject:
Reply with quote

frontend:
Code (php): скопировать код в буфер обмена
<script src="./lib/JsHttpRequest/JsHttpRequest.js"></script>
<script language="JavaScript">
    //передаем добавление оплаты пользователю
        function oplata() {
                JsHttpRequest.query(
                        '22.php', // путь к backend-скрипту
                        {
                                // передаем текстовые данные
                'id': document.getElementById("myid").value,
                'data': document.getElementById("mydata").value,
                'dengi': document.getElementById("mydengi").value,
                'prim': document.getElementById("myprim")                   
                        },
                        // Функция-обработчик, вызывается при ответе сервера.
                        function(result, errors) {
                                if (result){
                                        document.getElementById("ans").innerHTML = result ["ans"];
                                }
                                // Вывести отладочные сообщения (если нужно).
                                document.getElementById("debug").innerHTML = errors;         
                        }, false   
                );
        }
</script>

        <strong> Добавление оплаты пользователю: </strong>
        <form method='post' enctype='multipart/form-data' onsubmit=' return false'>
                <input type='hidden' name='id' id='myid' value='<?php echo $id; ?>'>
                Дата: <input type='data' name='data' id='mydata' value='<?php echo date ("Y-m-d"); ?>'><br />
                Сумма оплаты: <input name='dengi' type='text' id='mydengi' value= 'Сумма для оплаты'><br />
                <strong>Примечание платежу</strong><br />
                <textarea name='prim' id='myprim' cols='45' rows='5'></textarea><br /><br />
                <input type='button' value='Занести оплату' onclick="oplata();">
        </form>
        <div id="ans" style="border:1px solid #000; padding:2px">
                Результат работы отобразится в этом блоке.
        </div>
        <div id="debug" style="border:1px dashed red; padding:2px">
                Отладочные сообщения отобразятся в этом блоке.
        </div>
backend:
Code (php): скопировать код в буфер обмена
<?php
        require_once "./lib/JsHttpRequest/JsHttpRequest.php";
        // Init JsHttpRequest and specify the encoding. It's important!
        $JsHttpRequest =& new JsHttpRequest("windows-1251");
        // Fetch request parameters.
        $data = $_REQUEST['data'];
        $dengi = $_REQUEST['dengi'];
        $prim = $_REQUEST['prim'];
        $id = $_REQUEST['id'];

        $flag=true;
        $result=false;
       
        if ($id=='') {
                echo (www.php.net/echo) 'Не хватает переменной id<br>';
                $flag=false;
        }
    if ($data=='') {
                echo (www.php.net/echo) 'Не хватает переменной data<br>';
                $flag=false;
        }
        if ($dengi=='') {
                echo (www.php.net/echo) 'Не хватает переменной dengi<br>';
                $flag=false;
        }
       
        if ($flag)
        {
                $query = "INSERT INTO oplata (user_id,data,dengi,prim) VALUES";
                $query .= " (".$id.",".$data.",".$dengi.",".$prim.")";
                $result = mysql_query (www.php.net/mysql_query) ($query);
        }
        if ($result) {
                $GLOBALS['_RESULT'] = array (www.php.net/array) (
                        'ans' => 'Оплата внесена успешно'
                );
        } else {
                $GLOBALS['_RESULT'] = array (www.php.net/array) (
                        'ans' => 'Ошибка!'
                );
        }
?>
Вопрос: почему работает у меня, а у вас - нет?
Back to top
Vasilenko
Заглянувший



Joined: 15 Dec 2008
Posts: 13
Карма: 0
   поощрить/наказать


PostPosted: Fri Mar 13, 2009 6:38 pm (спустя 21 час 8 минут; написано за 51 секунду)
   Post subject:
Reply with quote

Вообщето я давно разобрался, все работает! Теперь меня интересует другой вопрос, как передать перемменную по ссылке?

-------------------таблица-----------------------------------------------------
|первое поле||второе поле||<a href="obrabotchik.php?id=$myrow["id"]">удалить</a>|
--------------------------------------------------------------------------------
|первое поле||второе поле||<a href="obrabotchik.php?id=$myrow["id"]">удалить</a>|
--------------------------------------------------------------------------------
|первое поле||второе поле||<a href="obrabotchik.php?id=$myrow["id"]">удалить</a>|
--------------------------------------------------------------------------------
|первое поле||второе поле||<a href="obrabotchik.php?id=$myrow["id"]">удалить</a>|
-----------------------------------------------------------------------------------

Так вот вопрос, если вопрос выше не сильно понятен: как на практике реализовать отправку ссылки удалить средствами ajax, с последующей динамической перезагрузкой таблицы и удалением строки ?
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
Post a reply
Username
Subject
Господа спамеры и оптимизаторы!

Вы можете даже и не пытаться вставлять в текст поста ссылки - они все равно автоматически удаляются (вернее, тэги <a> заменяются на тэги <u>).

Но если не поверите и все же попытаетесь - как только увидите, что все безрезультатно, удалите свой пост, пожалуйста. Модераторы тоже люди, нехорошо, если они погрязнут в тоннах спама.
     

Disable BBCode in this post
Disable Smilies in this post
    HTML is OFF
BBCode is ON
Smilies are ON
You cannot post new topics in this forum. You can reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML